// MongoDB 初始化脚本
// 在Docker容器启动时自动执行，创建必要的数据库和用户

// 切换到目标数据库
db = db.getSiblingDB('tea_traceability');

// 创建应用用户
db.createUser({
  user: 'tea_app',
  pwd: 'tea_app_password',
  roles: [
    {
      role: 'readWrite',
      db: 'tea_traceability'
    }
  ]
});

// 创建必要的集合和索引
db.createCollection('users');
db.createCollection('batches');

// 为用户集合创建索引
db.users.createIndex({ username: 1 }, { unique: true });
db.users.createIndex({ email: 1 }, { unique: true });
db.users.createIndex({ walletAddress: 1 }, { sparse: true, unique: true });

// 为批次集合创建索引
db.batches.createIndex({ batchId: 1 }, { unique: true });
db.batches.createIndex({ createdBy: 1 });
db.batches.createIndex({ status: 1 });
db.batches.createIndex({ teaType: 1 });
db.batches.createIndex({ createdAt: -1 });

// 创建文本搜索索引
db.batches.createIndex({
  batchId: 'text',
  teaType: 'text',
  'farmInfo.farmName': 'text',
  'farmInfo.location': 'text'
});

print('MongoDB 初始化完成');
print('数据库: tea_traceability');
print('应用用户: tea_app');
print('集合已创建: users, batches');
print('索引已创建');